#!/usr/bin/env node

const sqlite3 = require('sqlite3').verbose();
const path = require('path');

const dbPath = path.join(__dirname, 'data', 'database.sqlite');

console.log('🔍 检查数据库状态...');
console.log('数据库路径:', dbPath);

const db = new sqlite3.Database(dbPath, (err) => {
  if (err) {
    console.error('❌ 无法连接数据库:', err.message);
    return;
  }
  console.log('✅ 数据库连接成功');
  
  // 检查所有表
  db.all("SELECT name FROM sqlite_master WHERE type='table';", (err, tables) => {
    if (err) {
      console.error('❌ 查询表失败:', err.message);
      return;
    }
    
    console.log('\n📋 数据库中的表:');
    tables.forEach(table => {
      console.log('-', table.name);
    });
    
    // 专门检查 contacts 表
    const hasContactsTable = tables.some(table => table.name === 'contacts');
    
    if (hasContactsTable) {
      console.log('\n✅ contacts 表存在');
      
      // 查看 contacts 表结构
      db.all("PRAGMA table_info(contacts);", (err, columns) => {
        if (err) {
          console.error('❌ 查询表结构失败:', err.message);
        } else {
          console.log('\n📊 contacts 表结构:');
          columns.forEach(col => {
            console.log(`- ${col.name}: ${col.type}${col.notnull ? ' NOT NULL' : ''}${col.pk ? ' PRIMARY KEY' : ''}`);
          });
        }
        
        // 查看 contacts 表数据
        db.all("SELECT * FROM contacts;", (err, contacts) => {
          if (err) {
            console.error('❌ 查询数据失败:', err.message);
          } else {
            console.log(`\n💾 contacts 表数据 (${contacts.length} 条记录):`);
            contacts.forEach((contact, index) => {
              console.log(`${index + 1}. ${contact.title} (${contact.type}) - 显示:${contact.is_visible ? '是' : '否'}`);
            });
          }
          
          db.close();
        });
      });
    } else {
      console.log('\n❌ contacts 表不存在！');
      db.close();
    }
  });
});